package com.ruibang.glass.sale.feign;


import com.ruibang.glass.common.domain.material.MaterialAllManagementInventory;
import com.ruibang.glass.common.domain.material.MaterialManagement;
import com.ruibang.glass.common.domain.material.MaterialProductsInInfo;
import com.ruibang.glass.common.domain.material.MaterialProductsOut;
import com.teaming.cloud.framework2.common.model.ResultBody;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

import java.util.Collection;
import java.util.List;

@FeignClient("glass-material")
@Component
public interface MaterialApi {
    /**
     * 获取所有商品下拉
     *
     * @return
     */
    @RequestMapping(value = "/api/glass/material/management/getSelect", method = RequestMethod.GET)
    ResultBody<List<MaterialManagement>> getMaterialSelect();


    /**
     * 半成品出库
     *
     * @param materialProductsOut
     */
    @RequestMapping(value = "/api/material/bcp/product/out/add", method = RequestMethod.POST)
    void addMaterialBcpOutBound(@RequestBody MaterialProductsOut materialProductsOut);

    /**
     * 成品出库
     *
     * @param materialProductsOut
     */
    @RequestMapping(value = "/api/material/cp/product/out/add", method = RequestMethod.POST)
    void addMaterialCpOutBound(@RequestBody MaterialProductsOut materialProductsOut);

    /**
     * 成品入库
     *
     * @param materialProductsInInfo
     */
    @RequestMapping(value = "/api/material/cp/product/info/add", method = RequestMethod.POST)
    void addMaterialCpProductsInInfo(@RequestBody MaterialProductsInInfo materialProductsInInfo);

    /**
     * 半成品入库
     *
     * @param materialProductsInInfo
     */
    @RequestMapping(value = "/api/material/bcp/product/info/add", method = RequestMethod.POST)
    void addMaterialBCPProductsInInfo(@RequestBody List<MaterialProductsInInfo> materialProductsInInfo);

    /**
     * 出库单号获取
     *
     * @param
     */
    @RequestMapping(value = "/api/material/cksq/out/bound/manage/getOutNumber", method = RequestMethod.GET)
    ResultBody<String> getOutNumber();


}
